﻿#define _CRT_SECURE_NO_WARNINGS 1
//
// 冒泡排序:相邻元素比较大小,然后向后比较.
// 
//#include<stdio.h>
//
//void buble_sort(int* arr, int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz - 1; i++)
//	{
//		int j = 0;
//		for (j = 0; j < sz - i - 1; j++)
//		{
//			if (arr[j] < arr[j + 1])
//			{
//				int temp = arr[j];
//				arr[j] = arr[j + 1];
//				arr[j + 1] = temp;
//			}
//		}
//	}
//}
//
//int main()
//{
//	int arr[10] = { 2,1,50,3,40,80,6,38,8,9 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	buble_sort(arr, sz);
//
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	printf("\n");
//
//	return 0;
//}
//
//给定一个整数数组 nums，将数组中的元素向右轮转 k 个位置，其中 k 是非负数。
//
//#include <stdio.h>
//
//void rotate(int* nums, int numsSize, int k) {
//	int newArr[numsSize];
//	for (int i = 0; i < numsSize; ++i) {
//		newArr[(i + k) % numsSize] = nums[i];
//	}
//	for (int i = 0; i < numsSize; ++i) {
//		nums[i] = newArr[i];
//	}
//}
//
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int k = 0;
//	scanf("%d", &k);
//	rotate(arr, sz, k);
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	printf("\n");
//
//	return 0;
//}
//
//数组nums包含从0到n的所有整数，但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗？
//
//#include <stdio.h>
//
//int missingNumber(int* nums, int numsSize)
//{
//    int i = 0;
//    int sum = numsSize * (numsSize + 1) / 2;
//    int temp = 0;
//    for (i = 0; i < numsSize; i++)
//    {
//        temp += nums[i];
//    }
//
//
//    return (sum - temp);
//}
//
//int main()
//{
//    int nums[9] = { 0,1,2,3,4,5,6,8,9 };
//    int sz = sizeof(nums) / sizeof(nums[0]);
//    int ret = missingNumber(nums, sz);
//    printf("%d\n", ret);
//
//	return 0;
//}

//输入数字 n，按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3，则打印出 1、2、3 一直到最大的 3 位数 999。
//1. 用返回一个整数列表来代替打印
//2. n 为正整数，0 < n <= 5
//
//#include <stdio.h>
//#include <stdlib.h>
//
//int* printNumbers(int n, int* returnSize) {
//    // write code here
//    int temp = 1;
//    int i = 0;
//    for (i = 0; i < n; i++)
//    {
//        temp *= 10;
//    }
//    int* arr = (int*)malloc((temp - 1) * sizeof(int));
//    for (i = 0; i < temp - 1; i++)
//    {
//        arr[i] = i + 1;
//    }
//    *returnSize = i;
//
//    return arr;
//}
//
//int main()
//{
//    int num = 0;
//    scanf("%d", &num);
//    int sz = 0;
//    int* Arry = printNumbers(num, &sz);
//    for (int i = 0; i < sz; i++)
//    {
//        printf("%d ", Arry[i]);
//    }
//    free(Arry);
//    Arry = NULL;
//    return 0;
//}

//输入描述：输入一行，每行空格分割，分别是年，月，日。
//输出描述：输出是这一年的第几天
//
//#include <stdio.h>
//
//int main() {
//    int year, month, day;
//    int sum = 0;
//    int MonthList[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
//    while (scanf("%d %d %d", &year, &month, &day) != EOF)
//    {
//        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
//        {
//            int i = 0;
//            for (i = 0; i < month - 1; i++)
//            {
//                sum += MonthList[i];
//            }
//            if (month > 2)
//            {
//                sum += day + 1;
//            }
//            else
//                sum += day;
//        }
//        else
//        {
//            int i = 0;
//            for (i = 0; i < month - 1; i++)
//            {
//                sum += MonthList[i];
//            }
//            sum += day;
//        }
//        printf("%d\n", sum);
//    }
//    return 0;
//}
//
//输入一个正整数 m（m≤100） ，将 m 的立方写成 m 个连续奇数之和的形式输出
//输入：6.输出：31 + 33 + 35 + 37 + 39 + 41
//
//#include <stdio.h>
//
//int main() {
//    int num;
//    while (scanf("%d", &num) != EOF) {
//        int start = num * num - num + 1;
//        printf("%d", start);
//        int i = 0;
//        for (i = 2; i <= 2 * (num - 1); i += 2)
//        {
//            printf("+%d", start + i);
//        }
//        printf("\n");
//    }
//    return 0;
//}

//等差数列 2，5，8，11，14， ... 。（从 2 开始的 3 为公差的等差数列），求等差数列前 n 项和
//#include <stdio.h>
//
//int main() {
//    int n;
//    while (scanf("%d", &n) != EOF) {
//        int temp = 2 + (n - 1) * 3;
//        int sum = (2 + temp) * n / 2;
//        printf("%d\n", sum);
//    }
//    return 0;
//}